class ReservationsController < ApplicationController
	def create
		p_aux = Passenger.find_by_numDocumento(params[:num_documento])
		if p_aux.nil? then
			# Se crea el pasajero
			p_nuevo = Passenger.new

			p_nuevo.numDocumento = params[:num_documento]
			p_nuevo.fechaNacimiento = Date.strptime(params[:fecha_nacimiento].to_s, "%d/%m/%Y")
			if params[:sexo] == "Masculino"
				p_nuevo.sexo = 0
			else
				p_nuevo.sexo = 1
			end
			p_nuevo.nacionalidad = params[:nacionalidad]
			p_nuevo.direccion = params[:direccion]
			p_nuevo.telefono = params[:telefono]
			p_nuevo.esfrecuente = 0
			p_nuevo.puntos = 0
			p_nuevo.nombre = params[:nombre]
			p_nuevo.ape_paterno = params[:ape_paterno]
			p_nuevo.ape_materno = params[:ape_materno]
			p_nuevo.document_type_id = params[:tipo_documento]

			p_nuevo.save
		end

		#Se pasan a registrar la reserva de los asientos seleccionados
		i = 0
		asientos = params[:asiento]
		fecha = Time.now
		asientos.each do |a1, b1|
			i += 1
			@reserva = Reservation.new
			@reserva.fechaReserva = Time.now
			@reserva.passenger_id = p_aux.nil? ? p_nuevo.id : p_aux.id
			@reserva.trip_id = params[:viaje_id]
			@reserva.estado = 1
			@reserva.numAsiento = a1

			# Se crea el codigo de la reserva
			llegada = Trip.find(params[:viaje_id].to_i).station_llegada.ciudad
			salida = Trip.find(params[:viaje_id].to_i).station_salida.ciudad
			id = params[:viaje_id]
			if id.to_i < 10 then
				id = "00#{id}"
			elsif id.to_i < 100
				id = "0#{id}"
			else
				id = "00#{id[0..2]}"
			end

			@reserva.codigo = "V#{id}#{llegada[0]}#{salida[0]}-#{fecha.year}#{fecha.month}#{fecha.day}-#{fecha.usec.to_s[0..3]}"

			if !@reserva.save
				redirect_to :action=>"new"
			end
		end
		
		t = Trip.find_by_id(params[:viaje_id].to_i)
		t.numAsientosDisp -= asientos.size
		t.numAsientosReservados += asientos.size
		t.save

		redirect_to root_path, :notice => "Codigo de reserva #{@reserva.codigo}"
	end
end
